<template>
	<view class="find-square">
		<!-- <view class="find-square-tablist u-flex">
			<view :class="item.id==tabIndex?'act':''" class="find-square-tablist-item" v-for="(item,index) in tabList"
				@click="changeTab(item)" :key="index">
				{{item.title}}
				<image v-if="tabIndex==item.id" src="https://zaiyiqi-1322608024.cos.ap-nanjing.myqcloud.com/static/img/index/index-bottom.png"
					style="width: 56rpx;height: 4rpx;" mode=""></image>
			</view>
		</view> -->
		<view class="find-square-main">
			<view class="find-square-main-header u-flex" v-if="tabIndex == 2">
				<view class="find-square-main-header-left find-square-main-header-item u-flex"
					@click="$Router.push({ path: '/pages/find/find-banlist' })">
					<image class="icon" src="https://zaiyiqi-1322608024.cos.ap-nanjing.myqcloud.com/static/img/find/icon-left.png" mode=""></image>
					<view class="title">
						违规用户 >
					</view>
					<!-- <image class="bg" src="https://zaiyiqi-1322608024.cos.ap-nanjing.myqcloud.com/static/img/find/find-left.png" mode=""></image> -->
				</view>
				<view class="find-square-main-header-right find-square-main-header-item u-flex"
					@click="$Router.push({ path: '/pages/find/find-tagslist' })">
					<image class="icon" src="https://zaiyiqi-1322608024.cos.ap-nanjing.myqcloud.com/static/img/find/icon-right.png" mode=""></image>
					<view class="title">
						更多话题 >
					</view>
					<!-- <image class="bg" src="https://zaiyiqi-1322608024.cos.ap-nanjing.myqcloud.com/static/img/find/find-right.png" mode=""></image> -->
				</view>
			</view>
			<view class="find-square-main-list">
				<find-squareitem v-if="tabIndex != 7" :itemType="tabIndex" :lists="trendsList"></find-squareitem>
				<find-voteitem v-if="tabIndex == 7" v-for="(item,index) in trendsList" :key="index" :item="item" @changeVote="changeVote"></find-voteitem>
				 <!-- :voteState="false" -->
				<!-- <find-voteitem v-if="tabIndex == 7" :voteState="true"></find-voteitem>
				<find-voteitem v-if="tabIndex == 7" :voteState="false"></find-voteitem> -->
			</view>
		</view>
	</view>
</template>

<script>
//这里可以导入其他文件（比如：组件，工具js，第三方插件js，json文件，图片文件等等）
import findSquareitem from '../find-squareitem/find-squareitem.vue'
import findVoteitem from '../find-voteitem/find-voteitem.vue'
export default {
	// 组件名称
	name: 'demo',
	// 组件参数 接收来自父组件的数据
	props: {
		tabs: {
			type: Number,
			default: 1
		}
	},
	// 局部注册的组件,import引入的组件需要注入到对象中才能使用
	components: {
		findSquareitem,
		findVoteitem
	},
	// 组件状态值
	data() {
		return {
			tabIndex: 2,
			trendsList: [],
			// voteList: [],
			province: '',
			city: '',
			location: {
				lat: '',
				lng: '',
			},
		}
	},
	// 计算属性
	computed: {},
	// 侦听器
	watch: {
		// tabs(val) {
		// 	console.log(val,'tabs--val')
		// 	this.changeTab(val)
		// },
		// 使用watch来响应数据的变化
		tabs(newVal, oldVal) {
			console.log('最新值是：'+newVal,"原来的值是："+ oldVal);
			this.changeTab(newVal)
		}
	},
	// 组件方法
	methods: {
		// 切换tab	
		changeTab(item) {
			console.log(item,'itemitemitemitemitemitemitemitem');
			this.tabIndex = item
			this.trendsList = []
			if (item == 0) {
				this.getLocation()
			} else {
				this.getList(item)
			}
		},
		// 获取列表
		getList(index) {
			let item = {
				type: index,
				page: 1,
			}
			if (index == 0) {
				item.province = this.province
				item.city = this.city
				item.latitude = this.location.lat
				item.longitude = this.location.lng
			}
			this.$http('find.trendsList', item, '').then(res => {
				this.trendsList = []
				this.trendsList = res.data.data
			});
		},
		changeVote(){
			this.getList(this.tabIndex)
		},
		//获取当前位置
		getLocation() {
			let location = {
				lat: 0,
				lng: 0,
			}
			// console.log(location, 'location')
			let that = this
			uni.getLocation({
				success(res) {
					// console.log(res, 'res')
					location.lat = res.latitude
					location.lng = res.longitude
					// console.log(res.latitude, res.longitude, 'res.latitude,res.longituderes.latitude,res.longitude')
					// 根据经纬度获取城市
					uni.request({
						url: 'https://apis.map.qq.com/ws/geocoder/v1/',
						data: {
							location: `${res.latitude},${res.longitude}`,
							key: 'LNKBZ-7K2K4-FBTUF-F4EDL-DL3CH-T4FDB'
						},
						success(res) {
							// console.log(res, 'res', 'https://apis.map.qq.com/ws/geocoder/v1/')
							that.city = res.data.result.ad_info.city
							that.province = res.data.result.ad_info.province
							that.getList(1)
						}
					})
					that.location = location
				},
				fail(err) {
					console.log(err, 'err')
					that.location = location
					// that.getList()
					if (err.errMsg === 'getLocation:fail 频繁调用会增加电量损耗，可考虑使用 wx.onLocationChange 监听地理位置变化') {
						uni.showToast({
							title: '请勿频繁定位',
							icon: 'none'
						})
					}
					if (err.errMsg === 'getLocation:fail auth deny') {
						// 未授权
						uni.showToast({
							title: '无法定位，请重新获取位置信息',
							icon: 'none'
						})
						authDenyCb && authDenyCb()
						self.isLocated = false
					}
					if (err.errMsg === 'getLocation:fail:ERROR_NOCELL&WIFI_LOCATIONSWITCHOFF') {
						uni.showModal({
							content: '请开启手机定位服务',
							showCancel: false
						})
					}
				}
			})
		},
	},
	// 以下是生命周期钩子   注：没用到的钩子请自行删除
	/**
	 * 在实例初始化之后，组件属性计算之前，如data属性等
	 */
	beforeCreate() { },
	/**
	 * 组件实例创建完成，属性已绑定，但DOM还未生成，$ el属性还不存在
	 */
	created() { },
	/**
	 * 在挂载开始之前被调用：相关的 render 函数首次被调用。
	 */
	beforeMount() { },
	/**
	 * el 被新创建的 vm.$ el 替换，并挂载到实例上去之后调用该钩子。
	 * 如果 root 实例挂载了一个文档内元素，当 mounted 被调用时 vm.$ el 也在文档内。
	 */
	mounted() {
		this.getList(2)
	},
	/**
	 * 数据更新时调用，发生在虚拟 DOM 重新渲染和打补丁之前。
	 * 你可以在这个钩子中进一步地更改状态，这不会触发附加的重渲染过程。
	 */
	beforeUpdate() { },
	/**
	 * 由于数据更改导致的虚拟 DOM 重新渲染和打补丁，在这之后会调用该钩子。
	 * 当这个钩子被调用时，组件 DOM 已经更新，所以你现在可以执行依赖于 DOM 的操作。
	 */
	updated() { },
	/**
	 * keep-alive 组件激活时调用。 仅针对keep-alive 组件有效
	 */
	activated() { },
	/**
	 * keep-alive 组件停用时调用。 仅针对keep-alive 组件有效
	 */
	deactivated() { },
	/**
	 * 实例销毁之前调用。在这一步，实例仍然完全可用。
	 */
	beforeDestroy() { },
	/**
	 * Vue 实例销毁后调用。调用后，Vue 实例指示的所有东西都会解绑定，
	 * 所有的事件监听器会被移除，所有的子实例也会被销毁。
	 */
	destroyed() { }
}
</script>

<!-- Add "scoped" attribute to limit CSS to this component only -->
<!--使用了scoped属性之后，父组件的style样式将不会渗透到子组件中，-->
<!--然而子组件的根节点元素会同时被设置了scoped的父css样式和设置了scoped的子css样式影响，-->
<style scoped lang="scss">
.find-square {
	height: 100%;

	&-main {
		overflow-y: auto;
		height: calc(100% - 80rpx);

		&-header {
			justify-content: space-between;
			margin: 32rpx auto 0;

			.bg {
				z-index: 1;
				width: 336rpx;
				height: 136rpx;
				position: absolute;
				left: 0;
				top: 0;
			}

			.icon {
				z-index: 2;
				height: 80rpx;
				width: 80rpx;
				margin-left: 32rpx;
			}

			.title {
				z-index: 2;
				font-size: 28rpx;
				font-family: PingFang SC-Bold, PingFang SC;
				font-weight: bold;
				color: #FFFFFF;
				margin-left: 32rpx;
			}

			&-item {
				width: 336rpx;
				height: 136rpx;
				position: relative;
			}

			&-left {
				background: url(https://zaiyiqi-1322608024.cos.ap-nanjing.myqcloud.com/static/img/find/find-left.png) no-repeat;
				background-size: cover;
			}

			&-right {
				background: url(https://zaiyiqi-1322608024.cos.ap-nanjing.myqcloud.com/static/img/find/find-right.png) no-repeat;
				background-size: cover;
			}
		}

		&-list {
			margin-top: 32rpx;
		}
	}
}
</style>